package miravalles.chip;

import java.math.BigDecimal;

import miravalles.chip.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TableLayout;
import android.widget.TableRow;

class DialogoIconos extends Dialog implements android.view.View.OnClickListener {
	
	public static final Integer[] iconos=new Integer[]
			{
			R.drawable.bolos,
			R.drawable.brick,
			R.drawable.estudios,
			R.drawable.fiesta,
			R.drawable.foto,
			R.drawable.hamburguesa,
			R.drawable.internet,
			R.drawable.libros,
			R.drawable.cafe,
			R.drawable.movil,
			R.drawable.musica,
			R.drawable.ordenadores,
			R.drawable.regalos,
			R.drawable.reparacion,
			R.drawable.viajar,
			R.drawable.visa,
			R.drawable.vino,
			R.drawable.comer,
			R.drawable.tienda,
			R.drawable.ropa
			};		
	
	private Integer icono;
	
	private EditText etConcepto;
	private EditText etCantidad; 
	
	public DialogoIconos(Context contexto) {
		super(contexto);
	}
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
		setCancelable(true);
		setTitle(getContext().getResources().getString(
				R.string.configurarBoton));			    
	    setContentView(R.layout.iconos);
	    etConcepto=(EditText)findViewById(R.id.concepto);
	    etCantidad=(EditText)findViewById(R.id.cantidad);
	    cargarIconos();
	}
	
	public void setConcepto(String concepto) {		
		etConcepto.setText(concepto);		
	}
	
	public String getConcepto() {
		return etConcepto.getText().toString();	
	}	
	
	public BigDecimal getCantidad() {
		if(etCantidad.getText()==null) {
			return null;
		} else {
			return Util.getNumero(etCantidad);
		}
	}
	
	public void setCantidad(BigDecimal cantidad) {
		if(cantidad==null) {
			etCantidad.setText(null);
		} else {
			etCantidad.setText(cantidad.toString());
		}
	}
	
	public void cargarIconos() {

		TableLayout tabla=(TableLayout)findViewById(R.id.tablaIconos);
		tabla.removeAllViews();
		TableRow fila=new TableRow(getContext());
		tabla.addView(fila);
		int col=0;
		for(int i=0; i<iconos.length; i++) {
			Integer icono=iconos[i];
			ImageButton b=new ImageButton(getContext());
			fila.addView(b);
			b.setId(i);
			b.setImageDrawable(
				getContext().getResources().getDrawable(icono));
			b.setOnClickListener(this);
			b.setPadding(4,4,4,4);
			col++;
			if(col==5) {
				fila=new TableRow(getContext());
				tabla.addView(fila);
				col=0;
			}
		}
		limpiar();
	
	}
	
	public Integer getIcono() {
		return icono;
	}

	public void setIcono(Integer icono) {
		this.icono = icono;
	}
	
	public void limpiar() {
		TableLayout tabla=(TableLayout)findViewById(R.id.tablaIconos);
		for(int i=0; i<tabla.getChildCount(); i++) {
			TableRow fila=(TableRow)tabla.getChildAt(i);
			for(int j=0; j<fila.getChildCount(); j++) {
				ImageButton b=(ImageButton)fila.getChildAt(j);
				b.setBackgroundColor(0);
			}
		}
	}

	public void onClick(View v) {
		if(v instanceof ImageButton) {
			setIcono(v.getId());
			ImageButton b=(ImageButton)v;
			limpiar();
			b.setBackgroundColor(0xFFFF8844);			
		}
	}
}